Amazon API Gateway から S3 バケットのオブジェクトを取得する際に、path parameter(パスパラメータ)を使用して取得する方法を教えてください
困っていた内容
Amazon API Gateway から S3 バケットのオブジェクトを取得する際に、path parameter(パスパラメータ)を使用しての取得方法が分からないため、AWS 公式ドキュメントで公開されている取得手順などがあれば教えてください。
どう対応すればいいの?
path parameterを使用した Amazon API Gateway から S3 バケットのオブジェクトを取得する方法について AWS 公式ドキュメントにチュートリアルがありますので、基本的にこちらの手順に倣ってお試しください。
なお、以下のチュートリアルをお試しいただく上では、事前に取得先の S3 バケットやオブジェクトの準備ならびに、API Gateway から S3 バケットのオブジェクトを取得するための IAM ロール設定等を行う必要があります。
やってみた
実際にpath parameterを使用して、Amazon API Gateway から S3 バケットのオブジェクトを取得可能か検証してみました。
なお、下記より記載の検証内容では事前に取得先の S3 バケットやフォルダ、オブジェクトならびに、API Gateway から S3 バケットのオブジェクトを取得するための IAM ロールの権限設定等を実施済みの上で行っています。
Create Resource
path parameterで指定するためのリソースを本検証では以下のとおり 3 つ作成しています。
なお、以下を設定すると最終的なResource Pathとして、/{test-bucketname}/{test-folder}/{test-object}
になります。
- Resource Name: test-bucketname
- Resource Path: {test-bucketname}
- Resource Name: test-folder
- Resource Path: {test-folder}
- Resource Name: test-object
- Resource Path: {test-object}
Method Request
本検証では、以下のとおり設定しています。
設定項目 | 設定内容 |
---|---|
Integration type | AWS Service |
AWS Region | ap-northeast-1 |
AWS Service | Simple Storage Service (S3) |
HTTP method | GET |
Action Type | Use path override |
Path override (optional) | {test-bucketname}/{test-folder}/{test-object} |
Execution role | <API Gateway から S3 バケットのオブジェクトを取得するための IAM ロールの arn を入力してください> |
Integration Request
本検証では、以下のとおりURL Path Parametersを設定しています。
Name | Mapped from |
---|---|
test-bucketname | method.request.path.test-bucketname |
test-folder | method.request.path.test-folder |
test-object | method.request.path.test-object |
TEST
本検証では、以下の S3 バケットやフォルダ、オブジェクトを事前に用意しています。
なお、オブジェクト「test-object-apigateway-s3.txt」の中身は "Test success!!" の文字列のみが記載されています。
Resource | Value |
---|---|
S3 バケット | test-bucket-apigateway-s3 |
フォルダ | test-folder-apigateway-s3 |
オブジェクト | test-object-apigateway-s3.txt |
TEST のリンクをクリックして、Path に上記で設定した各項目を入力します。
Path Parameter | Value |
---|---|
{test-bucketname} | test-bucket-apigateway-s3 |
{test-folder} | test-folder-apigateway-s3 |
{test-object} | test-object-apigateway-s3.txt |
入力完了後、[Test]ボタンをクリックすると、右半分の画面にリクエスト結果が表示されます。
path parameterを使用して、Amazon API Gateway から S3 バケットのオブジェクトを取得することができ、リクエスト結果より、Status:200や {test-object} で指定したファイルの中身が表示されていることを確認できました。
まとめ
Amazon API Gateway から S3 バケットのオブジェクトを取得する際に、path parameterを使用して取得する方法については、冒頭でご案内した公式ドキュメントのチュートリアルや本稿の上記検証内容を参考にしていただき、少しでも誰かのお役にたてば幸いです。